package com.leetcodehot.problems;

public class problems1004 {
    /**
     * 对于当前的right，得有个count来计数以right为右端点的连续1个数
     * 其中k可以用来消除原本位置的0
     * 具体来说就是判断当前为0的时候 k--;count++;
     * 如果k已经为0，则不能够k--；count++;
     * 而是消除掉left端原本为0的部分才能继续
     */
    public int longestOnes(int[] nums, int k) {
        int n = nums.length;
        int left = 0;
        int res = 0;
        for (int right = 0; right < n; right++) {
            if (nums[right] == 0) {
                while (k == 0) {
                    if (nums[left] == 0) {
                        k++;
                    }
                    left++;
                }
                k--;
            }
            //如果是1 直接叠加
            res = Math.max(res, right - left + 1);
        }
        return res;
    }
}
